Lincheck: A Practical Framework for Testing Concurrent Data Structures on JVM
نویسندگان
چکیده
Abstract This paper presents , a new practical and user-friendly framework for testing concurrent algorithms on the Java Virtual Machine (JVM). provides simple declarative way to write tests: instead of describing how perform test, users specify what test by declaring all operations examine; automatically handles rest. As result, tests written with are concise easy understand. The generates set scenarios, examines them using stress-testing or bounded model checking, verifies that results each invocation correct. Notably, if an error is detected via easy-to-follow trace reproduce it, significantly simplifying bug investigation. To best our knowledge, first production-ready tool JVM offers such writing tests, without requiring special skills expertise. We successfully integrated in development process several large projects, as Kotlin Coroutines, identified bugs popular concurrency libraries, race Java’s standard liveliness framework, which used most synchronization primitives. believe can improve quality productivity research become state-of-the-art checking their correctness.
منابع مشابه
Concurrent Data Structures
Sun Microsystems Laboratories 1.1 Designing Concurrent Data Structures . . . . . . . . . . . . . 1-1 Performance • Blocking Techniques • Nonblocking Techniques • Complexity Measures • Correctness • Verification Techniques • Tools of the Trade 1.2 Shared Counters and Fetch-and-φ Structures . . . . . 1-12 1.3 Stacks and Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...
متن کاملSeSFJava: A Framework for Design and Testing of Concurrent Systems
Many elegant formalisms have been developed for specifying and reasoning about concurrent systems. However, these formalisms have not been widely used by developers and programmers of concurrent systems. One reason is that most formal methods involve techniques and tools not familiar to programmers, for example, a specification language very different from C, C++, or Java. SeSF is a framework f...
متن کاملConcurrent Data Structures for Efficient Streaming Aggregation
In this paper, we study the problem of streaming multiway aggregation, where large data volumes are received from multiple input streams. Multiway aggregation is a fundamental computational component in data stream management systems, requiring lowlatency and high throughput solutions. We focus on the problem of designing concurrent data structures for achieving low-latency and high throughput ...
متن کاملConcurrent Data Structures for Hypercube Machine
To efficiully implemenl puallel al,orilhml on
متن کاملMemory Management for Concurrent Data Structures on Hardware Transactional Memory
Similar to fine-grained locking, and lock-free programming, memory management poses challenges to programming systems with hardware transactional memory (HTM). Thus, scalable data structures need to integrate a memory management scheme, such as hazard pointers, repeated offender, reference counting, and StackTrack. In this paper, we revisit epochs, another popular memory management technique, a...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Lecture Notes in Computer Science
سال: 2023
ISSN: ['1611-3349', '0302-9743']
DOI: https://doi.org/10.1007/978-3-031-37706-8_8